package lanQiaoBei.数学知识.组合数学;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
import java.util.Scanner;

/*
 AcWing 888. 求组合数 IV

输入a,b，求Cba的值。
注意结果可能很大，需要使用高精度计算。

输入格式
共一行，包含两个整数a和b。

输出格式
共一行，输出Cba的值。

数据范围
1≤b≤a≤5000
输入样例：

5 3

输出样例：

1
分解质因数+高精度乘法
 */
public class P4 {
       static BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
       final static int N=5010;
       static int primers[]=new int[N],sum[]=new int[N],cnt;
       static boolean st[]=new boolean[N];
       
       static int get(int a,int p){//求a的阶层拥有p的个数
    	      int res=0;
    	      while(a>0){
    	    	  res+=a/p;
    	    	  a/=p;
    	      }
    	      return res;
       }
       public static void main(String[] args) throws IOException {
		      String[]ss=br.readLine().split(" ");
		      int a=Integer.parseInt(ss[0]),b=Integer.parseInt(ss[1]);
		      
		      for(int i=2;i<=5000;i++){
		    	  if(!st[i])primers[cnt++]=i;
		    	  for(int j=0;primers[j]<=5000/i;j++){
		    		  st[primers[j]*i]=true;
		    		  if(i%primers[j]==0)break;
		    	  }
		      }
		      
		      for(int i=0;i<cnt;i++){
		    	  int p=primers[i];
		    	  sum[i]=get(a,p)-get(b,p)-get(a-b,p);
		      }
		      BigInteger res=new BigInteger("1");
		      for(int i=0;i<cnt;i++){
		    	  while(sum[i]-->0){
		    		  res=res.multiply(new BigInteger(primers[i]+""));
		    	  }
		      }
		      System.out.print(res);
	}
}
